/*
    Android UIML

	Copyright (C) 2010  Bram Goffings (bramgoffings@gmail.com)

	This program is free software; you can redistribute it and/or
	modify it under the terms of the GNU Lesser General Public License
	as published by the Free Software Foundation; either version 2.1
	of	the License, or (at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU Lesser General Public License for more details.

	You should have received a copy of the GNU Lesser General Public License
	along with this program; if not, write to the Free Software
	Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*/

package uiml.android.parser;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.xml.sax.SAXException;

public class DomAndroidUimlParser extends BaseAndroidUimlParser{

	/**
	 * Constructor
	 * 
	 * @param inputStream het uiml bestand dat geparsed wordt
	 * @throws FileNotFoundException 
	 */
	public DomAndroidUimlParser(InputStream inputStream) throws FileNotFoundException {
		super(inputStream);
	}

	/**
	 * {@inheritDoc}
	 * 
	 * @throws ParserConfigurationException 
	 * @throws IOException 
	 * @throws SAXException 
	 */
	@Override
	public Document parse() throws ParserConfigurationException, IOException, SAXException {
		
		try {
			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
			DocumentBuilder domBuilder = factory.newDocumentBuilder();
			Document dom = domBuilder.parse(file);
			
			return dom;
		}
		catch(ParserConfigurationException e)
		{
			throw new ParserConfigurationException(e.getMessage());
		}
		catch(SAXException e)
		{
			throw new SAXException(e.getMessage());
		}
		catch(IOException e)
		{
			throw new IOException(e.getMessage());
		}
		
	}

	
}